Increasingly sophisticated mobile computing devices have become pervasive in today's society. Such mobile computing devices no longer just have the ability to make phone calls or exchange text messages, but are now able to execute full-fledged software applications. Software applications for mobile computing devices can serve a wide variety of purposes. For example, some software applications for mobile computing devices are simple video games. In another example, some software applications for mobile computing devices support sales or inventory processes for enterprises.
Different types of mobile computing devices have different operating systems and capabilities. For example, some mobile phones use the ANDROID® operating system and other mobile phones use the IPHONE® operating system. In another example, some mobile computing devices support rich, full color graphical user interfaces while other mobile computing devices only provide simple text-based interfaces.
Because different types of mobile computing devices have different operating systems and capabilities, if a developer wants to develop a software application for different types of mobile computing devices, it has been necessary to develop separate versions of the software application for each of the different types of mobile computing devices. For example, a developer may have to develop a version of a software application for IPHONE® mobile phones and another version of the software application for BLACKBERRY® mobile phones. Development of different versions of a software application for different types of mobile computing devices can be a costly and time consuming process.